package boundary;

import fields.Ownable;
import gstd.Dice;
import gstd.Field;
import gstd.Player;

public interface UI {

	void init(boolean useAnimation, Field[] fields);

	void createPlayers(Player[] players);

	boolean askToBuy(Ownable ownableField, Player player);

	String inputPlayerName(int nr);

	boolean selectStartNewMatch();

	int selectNumberOfPlayers();

	void selectShake(Player player);

	void showDices(Dice[] dices);

	void updatePlayers(Player[] players);

	void move(int field, Player player);

	void setPlayerBankrupt(Player player, Field[] fields);

	void updateBoard(Field[] fields);

	void resetBoard(Field[] fields, Player[] players);

	void payRent(Player currentPlayer, Player owner, int rent);

	void receiveBonus(Player currentPlayer, int bonus);
	
	void payTax(Player currentPlayer, int tax);

	void showWinner(Player winner);
	
	
}
